using System;
using System.Collections.Generic;
using System.Text;
using System.Data;           //CommandType
using System.Data.SqlClient; //SqlConnection, SqlCommand, SqlDataReader
using Etna.Exportaciones.En;

namespace Etna.Exportaciones.Ad
{
   public class AdPackingList
   {
      //public AdPackingList(SqlConnection con)
      //{
      //   conexion = con;
      //}

       public EnPackingList Leer(int pidPakingList, SqlConnection conexion)
      {
         EnPackingList oEnPackingList = null;
         SqlCommand cmd = new SqlCommand("sExportaciones_PackingListLeer", conexion);
         cmd.CommandType = CommandType.StoredProcedure;

         SqlParameter Parametro1 = cmd.Parameters.Add("@piidPakingList", SqlDbType.Int);
         Parametro1.Direction = ParameterDirection.Input;
         Parametro1.Value = pidPakingList;

         SqlDataReader drd = cmd.ExecuteReader(CommandBehavior.SingleResult);
         if (drd != null)
         {

            if (drd.Read())
            {
               oEnPackingList = new EnPackingList();
               oEnPackingList.idPakingList = drd.GetInt32(0);
               if (!drd.IsDBNull(1))
               {
                  oEnPackingList.idSolicitud = drd.GetInt32(1);
               }
               if (!drd.IsDBNull(2))
               {
                  oEnPackingList.sfechaSalida = drd.GetString(2);
               }
               if (!drd.IsDBNull(3))
               {
                  oEnPackingList.shoraSalida = drd.GetString(3);
               }
               if (!drd.IsDBNull(4))
               {
                  oEnPackingList.numeroBulto = drd.GetString(4);
               }
               if (!drd.IsDBNull(5))
               {
                  oEnPackingList.contenido = drd.GetString(5);
               }
               if (!drd.IsDBNull(6))
               {
                  oEnPackingList.dimensiones = drd.GetString(6);
               }
               if (!drd.IsDBNull(7))
               {
                  oEnPackingList.npeso = drd.GetDecimal(7);
               }
               if (!drd.IsDBNull(8))
               {
                  oEnPackingList.nvolumenTotal = drd.GetDecimal(8);
               }
               if (!drd.IsDBNull(9))
               {
                  oEnPackingList.npesoNetoTotal = drd.GetDecimal(9);
               }
               if (!drd.IsDBNull(10))
               {
                  oEnPackingList.npesoNetoBruto = drd.GetDecimal(10);
               }
            }
            drd.Close();
         }

         return oEnPackingList;
      }

       public bool Insertar(EnPackingList poEnPackingList, SqlConnection conexion)
      {
         bool bExito = false;
         SqlCommand cmd = new SqlCommand("sExportaciones_PackingListInsertar", conexion);
         cmd.CommandType = CommandType.StoredProcedure;

         SqlParameter Parametro1 = cmd.Parameters.Add("@piidPakingList", SqlDbType.Int);
         Parametro1.Direction = ParameterDirection.Input;
         Parametro1.Value = poEnPackingList.idPakingList;

         SqlParameter Parametro2 = cmd.Parameters.Add("@piidSolicitud", SqlDbType.Int);
         Parametro2.Direction = ParameterDirection.Input;
         Parametro2.Value = poEnPackingList.idSolicitud;

         SqlParameter Parametro3 = cmd.Parameters.Add("@pifechaSalida", SqlDbType.VarChar);
         Parametro3.Direction = ParameterDirection.Input;
         Parametro3.Value = poEnPackingList.sfechaSalida;

         SqlParameter Parametro4 = cmd.Parameters.Add("@pihoraSalida", SqlDbType.VarChar);
         Parametro4.Direction = ParameterDirection.Input;
         Parametro4.Value = poEnPackingList.shoraSalida;

         SqlParameter Parametro5 = cmd.Parameters.Add("@pinumeroBulto", SqlDbType.NChar);
         Parametro5.Direction = ParameterDirection.Input;
         Parametro5.Value = poEnPackingList.numeroBulto;

         SqlParameter Parametro6 = cmd.Parameters.Add("@picontenido", SqlDbType.NChar);
         Parametro6.Direction = ParameterDirection.Input;
         Parametro6.Value = poEnPackingList.contenido;

         SqlParameter Parametro7 = cmd.Parameters.Add("@pidimensiones", SqlDbType.NChar);
         Parametro7.Direction = ParameterDirection.Input;
         Parametro7.Value = poEnPackingList.dimensiones;

         SqlParameter Parametro8 = cmd.Parameters.Add("@pipeso", SqlDbType.Decimal);
         Parametro8.Direction = ParameterDirection.Input;
         Parametro8.Value = poEnPackingList.npeso;

         SqlParameter Parametro9 = cmd.Parameters.Add("@pivolumenTotal", SqlDbType.Decimal);
         Parametro9.Direction = ParameterDirection.Input;
         Parametro9.Value = poEnPackingList.nvolumenTotal;

         SqlParameter Parametro10 = cmd.Parameters.Add("@pipesoNetoTotal", SqlDbType.Decimal);
         Parametro10.Direction = ParameterDirection.Input;
         Parametro10.Value = poEnPackingList.npesoNetoTotal;

         SqlParameter Parametro11 = cmd.Parameters.Add("@pipesoNetoBruto", SqlDbType.Decimal);
         Parametro11.Direction = ParameterDirection.Input;
         Parametro11.Value = poEnPackingList.npesoNetoBruto;

         int n = cmd.ExecuteNonQuery();
         bExito = (n > 0);

         return bExito;
      }


       public bool Modificar(EnPackingList poEnPackingList, SqlConnection conexion)
      {
         bool bExito = false;
         SqlCommand cmd = new SqlCommand("sExportaciones_PackingListModificar", conexion);
         cmd.CommandType = CommandType.StoredProcedure;

         SqlParameter Parametro1 = cmd.Parameters.Add("@piidPakingList", SqlDbType.Int);
         Parametro1.Direction = ParameterDirection.Input;
         Parametro1.Value = poEnPackingList.idPakingList;

         SqlParameter Parametro2 = cmd.Parameters.Add("@piidSolicitud", SqlDbType.Int);
         Parametro2.Direction = ParameterDirection.Input;
         Parametro2.Value = poEnPackingList.idSolicitud;

         SqlParameter Parametro3 = cmd.Parameters.Add("@pifechaSalida", SqlDbType.VarChar);
         Parametro3.Direction = ParameterDirection.Input;
         Parametro3.Value = poEnPackingList.sfechaSalida;

         SqlParameter Parametro4 = cmd.Parameters.Add("@pihoraSalida", SqlDbType.VarChar);
         Parametro4.Direction = ParameterDirection.Input;
         Parametro4.Value = poEnPackingList.shoraSalida;

         SqlParameter Parametro5 = cmd.Parameters.Add("@pinumeroBulto", SqlDbType.NChar);
         Parametro5.Direction = ParameterDirection.Input;
         Parametro5.Value = poEnPackingList.numeroBulto;

         SqlParameter Parametro6 = cmd.Parameters.Add("@picontenido", SqlDbType.NChar);
         Parametro6.Direction = ParameterDirection.Input;
         Parametro6.Value = poEnPackingList.contenido;

         SqlParameter Parametro7 = cmd.Parameters.Add("@pidimensiones", SqlDbType.NChar);
         Parametro7.Direction = ParameterDirection.Input;
         Parametro7.Value = poEnPackingList.dimensiones;

         SqlParameter Parametro8 = cmd.Parameters.Add("@pipeso", SqlDbType.Decimal);
         Parametro8.Direction = ParameterDirection.Input;
         Parametro8.Value = poEnPackingList.npeso;

         SqlParameter Parametro9 = cmd.Parameters.Add("@pivolumenTotal", SqlDbType.Decimal);
         Parametro9.Direction = ParameterDirection.Input;
         Parametro9.Value = poEnPackingList.nvolumenTotal;

         SqlParameter Parametro10 = cmd.Parameters.Add("@pipesoNetoTotal", SqlDbType.Decimal);
         Parametro10.Direction = ParameterDirection.Input;
         Parametro10.Value = poEnPackingList.npesoNetoTotal;

         SqlParameter Parametro11 = cmd.Parameters.Add("@pipesoNetoBruto", SqlDbType.Decimal);
         Parametro11.Direction = ParameterDirection.Input;
         Parametro11.Value = poEnPackingList.npesoNetoBruto;

         int n = cmd.ExecuteNonQuery();
         bExito = (n > 0);

         return bExito;
      }

       public List<EnPackingList> Listar(int pidPakingList, SqlConnection conexion)
      {
         List<EnPackingList> loEnPackingList = null;
         EnPackingList oEnPackingList = null;
         SqlCommand cmd = new SqlCommand("sExportaciones_PackingListListar", conexion);
         cmd.CommandType = CommandType.StoredProcedure;

         SqlParameter Parametro1 = cmd.Parameters.Add("@piidPakingList", SqlDbType.Int);
         Parametro1.Direction = ParameterDirection.Input;
         Parametro1.Value = pidPakingList;

         SqlDataReader drd = cmd.ExecuteReader(CommandBehavior.SingleResult);
         if (drd != null)
         {

            loEnPackingList = new List<EnPackingList>();
            while (drd.Read())
            {
               oEnPackingList = new EnPackingList();
               oEnPackingList.idPakingList = drd.GetInt32(0);
               if (!drd.IsDBNull(1))
               {
                  oEnPackingList.idSolicitud = drd.GetInt32(1);
               }
               if (!drd.IsDBNull(2))
               {
                  oEnPackingList.sfechaSalida = drd.GetString(2);
               }
               if (!drd.IsDBNull(3))
               {
                  oEnPackingList.shoraSalida = drd.GetString(3);
               }
               if (!drd.IsDBNull(4))
               {
                  oEnPackingList.numeroBulto = drd.GetString(4);
               }
               if (!drd.IsDBNull(5))
               {
                  oEnPackingList.contenido = drd.GetString(5);
               }
               if (!drd.IsDBNull(6))
               {
                  oEnPackingList.dimensiones = drd.GetString(6);
               }
               if (!drd.IsDBNull(7))
               {
                  oEnPackingList.npeso = drd.GetDecimal(7);
               }
               if (!drd.IsDBNull(8))
               {
                  oEnPackingList.nvolumenTotal = drd.GetDecimal(8);
               }
               if (!drd.IsDBNull(9))
               {
                  oEnPackingList.npesoNetoTotal = drd.GetDecimal(9);
               }
               if (!drd.IsDBNull(10))
               {
                  oEnPackingList.npesoNetoBruto = drd.GetDecimal(10);
               }
               loEnPackingList.Add(oEnPackingList);
            }
            drd.Close();
         }

         return loEnPackingList;
      }
   }
}
